
        <html>
			<head>
			     <title>广告联盟变身挂马联盟 HackingTeam漏洞武器袭击百万网民 - 360安全卫士</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/papers/10597">http://drops.wooyun.org/papers/10597</a></h1>
				
      <p>
        <h1>0x00 情况介绍</h1>

<hr />

<p>在11月初，360互联网安全中心监控到一款名为“<strong>restartokwecha</strong>“的下载者木马拦截量暴增,而对其溯源发现，木马竟然来自PConline（太平洋电脑网），1ting（一听音乐网），stockstar（证劵之星）等一批知名网站。对这些网站进行分析发现，网站广告位展示的广告中包含了Hacking Team泄露的Flash漏洞中的一个漏洞利用挂马（CVE-2015-5122）。而该下载者木马，除了在用户计算机上安装多个恶意程序外，还会推广安装多款知名软件。由于国内大量电脑仍然没有及时升级Flash插件，造成木马可以大规模传播。</p>

<p>360互联网安全中心在今年，已经多次捕获到国内大规模挂马行为，包括今年5月底的播放器广告位CVE-2014-6332挂马，今年7月中旬皮皮影音等CVE-2015-5122挂马，今年10月初，多家知名网站CVE-2015-5122Flash漏洞挂马。这些挂马事件，影响用户均超过百万，都是利用国内知名厂商平台进行传播，而幕后金主也包括国内多家大厂商。</p>

<!--more-->

<h1>0x01 攻击原理</h1>

<hr />

<p>此类木马攻击，一般通过3种方式传播其木马站点，分别是<strong>攻击其他网站挂马；自建木马站点</strong>，通过广告链接SEO等导入流量；通过网站/联盟广告位方式挂马。</p>

<p>例如，像下面这种，利用网站对发帖内容审核不严的问题，在帖子中加入其它站点的Flash元素，对网站进行挂马。</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305241215948128.png" alt="" /></p>

<p>攻击者只需要在用户访问的页面中插入一个攻击者设定的Flash元素，即可完成攻击。而Flash内容，做为网页的富媒体内容，在互联网中有广泛应用，如果平台对媒体内容审核不严，极有可能出现被恶意利用，网站挂马的情况。</p>

<p>挂马网站攻击流程：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305241487053224.png" alt="" /></p>

<h1>0x02 案例分析</h1>

<hr />

<p>对此次挂马事件，PConline因为整站挂有此类木马，受影响用户最多，我们以PConline为例做了分析，国内还有多家知名网站也存在同样问题。</p>

<h2>挂马页面分析</h2>

<p>PConline被挂马，是因为其使用了“海云互通”广告联盟的广告内容，这个广告联盟为攻击者提供了广告推广的服务，最终造成在PConline的页面中嵌入木马的效果。</p>

<p>首页，PConline的主站，使用了自己站点pcauto下的内容：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305241695454324.png" alt="" /></p>

<p>Pcauto使用vamaker（万流客）管理其广告流量：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305242443225420.png" alt="" /></p>

<p>之后可以看到，vamaker引入了qtmojo（宽通广告）的代码，而宽通广告带入了出问题的“海云互通”（haiyunx）广告联盟内容：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305242684415514.png" alt="" /></p>

<p>最终，我们在“海云互通”的代码中发现了接入木马服务器zyxtx.cn的代码：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305242879347611.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305242956522710.png" alt="" /></p>

<p>攻击者对其代码进行了重新编码，如图所示数组，即为其引入木马的隐藏代码：</p>

<p><img src="http://static.wooyun.org//drops/20151123/201511230524315775088.png" alt="" /></p>

<p><strong>对这段代码进行解码之后，可以看到。攻击者为了达到隐藏攻击代码的意图，会在页面中引入一个游戏的Flash资源，将攻击代码伪装成“正常的游戏Flash页面”，在后面又悄悄引入了一个挂马Flash资源：</strong></p>

<p><img src="http://static.wooyun.org//drops/20151123/201511230524334861396.png" alt="" /></p>

<p>在打开这个页面时，将展示一个正常的游戏页面，攻击代码则会在后台悄悄执行：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305243732704104.png" alt="" /></p>

<p>在对此攻击进行分析时，这个木马服务器还挂着其它木马：</p>

<p><code>218.186.59.89:8888</code></p>

<p><img src="http://static.wooyun.org//drops/20151123/20151123052448522121111.png" alt="" /></p>

<p><strong>通过这种对页面代码做编码和伪装的方法，攻击者成功绕过了广告联盟和各大网站的审核（如果有的话~~），加挂马的代码通过各大网站展示给了普通计算机用户。如果用户访问到了这些网站，而又没打好补丁的话，就极有可能感染木马。</strong></p>

<h2>挂马漏洞分析</h2>

<p>此次挂马，攻击者使用的仍然是之前Hacking Team泄露的CVE-2015-5122Flash漏洞，如果用户计算机中的Flash版本仍然是18.0.0.209之前的版本，就会触发漏洞执行。对应的挂马Flash文件在一个月内，更新了超过20次：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305245089382129.png" alt="" /></p>

<p>此挂马文件在VirusTotal上只有McAfee和360能够检出：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305245856321135.png" alt="" /></p>

<p>swf样本用doswf加密过，解密之后，可以看到该样本的源码如下：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305250091426144.png" alt="" /></p>

<p>漏洞触发代码如下：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305250219767153.png" alt="" /></p>

<p>通过对源码的跟踪，便能发现是cve-2015-5122的样本。</p>

<p>在漏洞触发后使用的payload如下：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305250430345163.png" alt="" /></p>

<p>反汇编出来的shellcode如下：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305250662278173.png" alt="" /></p>

<p>通过对shellcode进行调试分析发现该样本将会从file.nancunshan.com下载木马到本地浏览器临时目录，生成文件wecha&#95;159&#95;a.exe，并执行</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305250725316182.png" alt="" /></p>

<p>关于漏洞的详细分析，可以看我们之前的分析《Hacking Team攻击代码分析Part 4: Flash 0day漏洞第二弹 – CVE-2015-5122》（<a href="http://blogs.360.cn/360safe/2015/07/11/hacking-team-part4-Flash-2/">http://blogs.360.cn/360safe/2015/07/11/hacking-team-part4-Flash-2/</a>）</p>

<h2>Payload分析</h2>

<p>此次挂马的传播木马，和以往几次大规模挂马类似，仍然是一个做为流氓软件推广器使用的下载者，这个下载者木马的制作手段老练，属于专业木马团伙制作。</p>

<ol>
<li><p>此木马更新速度很快，高峰时每小时都会更新一次文件，用来快速躲避查杀和监控。1.</p></li>
<li><p>会检测和判断环境，在发现是虚拟机测试机的情况下，不执行作恶代码，躲避分析。1.</p></li>
<li><p>频繁变更下载域名，躲避查杀。</p></li>
</ol>

<p>木马的统计和下载域名：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305250915677192.png" alt="" /></p>

<p>木马的功能选项，包括弹广告，下载文件，重启程序，自删除等：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305251057190202.png" alt="" /></p>

<p>木马会枚举当前系统的进程列表，如果遇到虚拟机，影子系统，网吧等时，不执行下载者的功能。</p>

<p><img src="http://static.wooyun.org//drops/20151123/20151123052512521612110.png" alt="" /></p>

<p>木马的下载列表也进行了编码，用来对抗分析：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305251377402225.png" alt="" /></p>

<p>对这份列表进行解码，可以看到国内多款知名软件在列：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305251546413233.png" alt="" /></p>

<p>下载者运行的进程树情况：</p>

<p>Process Tree</p>

<ul>
<li>iexplore.exe 2404 

<ul>
<li>iexplore.exe 2600 

<ul>
<li>wecha&#95;159&#95;a.exe 2944 

<ul>
<li>restartokwecha&#95;159&#95;a.exe 3092</li>
<li>xwiklit&#95;552&#95;setup.exe 3524</li>
<li>ADSafe.29096-2.exe 3756</li>
<li>cqss_1116.exe 1040 

<ul>
<li>cq1.76.exe 2832</li>
</ul></li>
<li>setup&#95;B63&#95;1.exe 3908</li>
<li>duba&#95;3&#95;802.exe 2628</li>
<li>QQPCDownload72845.exe 3116</li>
<li>MTViewbuildmtview_97.exe 520</li>
<li>1.0.003-Install&#95;121&#95;123.exe 3460 

<ul>
<li>KcProc.exe 1924</li>
</ul></li>
<li>jywset&#95;65&#95;6.exe 3624</li>
</ul></li>
</ul></li>
</ul></li>
</ul>

<p>推广的内容中，还包括快查这类恶意程序。</p>

<p>注入系统进程，后台隐藏执行：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305251646179244.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305251828426253.png" alt="" /></p>

<p>创建虚假浏览器快捷方式，篡改用户首页：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305251921886263.png" alt="" /></p>

<p>安装广告插件，在用户计算机不断弹出各类广告：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305252113057274.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305252295983284.png" alt="" /></p>

<p>此类下载者木马，由于其推广列表云控，推广内容也在不断免杀更新。攻击者通过不断向用户计算机推广各类软件，疯狂榨取用户计算机资源，赚取推广费。</p>

<h1>0x03 数据统计</h1>

<hr />

<p>此次大规模网页挂马，从十一月初开始，和上一轮大规模挂马（10月初的广告联盟挂马事件）为同一伙人所为。在之前挂马被杀之后，攻击者又卷土重来。根据360互联网安全中心统计，此次挂马，单日挂马页面拦截量超过170万次，单日受影响用户将近30万。单日木马拦截量超过4万次。</p>

<p>近期CVE-2015-5122挂马页面拦截量：</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305252416018294.png" alt="" /></p>

<p>20日，单日木马拦截量变动</p>

<p><img src="http://static.wooyun.org//drops/20151123/2015112305252541927304.png" alt="" /></p>

<p>受影响用户，分布情况：</p>

<p><img src="http://static.wooyun.org//drops/20151123/20151123052439442223110.png" alt="" /></p>

<h1>0x04 解决方案</h1>

<hr />

<p>目前，我们在拦截挂马页面攻击的同时，已经联系广告联盟，去除带有挂马攻击的广告页面，要求联盟加强审核。</p>

<p>对于广大网民来说，应及时更新系统和浏览器中的Flash插件，打好安全补丁，切莫被“打补丁会拖慢电脑”的谣言误导。对于没有更新Flash插件的浏览器，应该暂时停用。同时可以安装具有漏洞防护功能的安全防护软件，应对各类挂马攻击。</p>

<p>对于国内各大软件厂商和网站/网盟平台厂商，也应该加强自身审核，不要让自身渠道成为木马传播的帮凶，严格审核平台中出现的广告内容，防止广告挂马。各个软件厂商，也需要规范自身推广渠道，不要成了木马黑产的幕后金主！</p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          